home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- NNNNAAAAMMMMEEEE
- XLoadFont, XQueryFont, XLoadQueryFont, XFreeFont,
- XGetFontProperty, XUnloadFont, XCharStruct, XFontProp,
- XChar2b, XFontStruct - load or unload fonts and font metric
- structures
-
- SSSSYYYYNNNNTTTTAAAAXXXX
- Font XLoadFont(_d_i_s_p_l_a_y, _n_a_m_e)
- Display *_d_i_s_p_l_a_y;
- char *_n_a_m_e;
-
- XFontStruct *XQueryFont(_d_i_s_p_l_a_y, _f_o_n_t__I_D)
- Display *_d_i_s_p_l_a_y;
- XID _f_o_n_t__I_D;
-
- XFontStruct *XLoadQueryFont(_d_i_s_p_l_a_y, _n_a_m_e)
- Display *_d_i_s_p_l_a_y;
- char *_n_a_m_e;
-
- XFreeFont(_d_i_s_p_l_a_y, _f_o_n_t__s_t_r_u_c_t)
- Display *_d_i_s_p_l_a_y;
- XFontStruct *_f_o_n_t__s_t_r_u_c_t;
-
- Bool XGetFontProperty(_f_o_n_t__s_t_r_u_c_t, _a_t_o_m, _v_a_l_u_e__r_e_t_u_r_n)
- XFontStruct *_f_o_n_t__s_t_r_u_c_t;
- Atom _a_t_o_m;
- unsigned long *_v_a_l_u_e__r_e_t_u_r_n;
-
- XUnloadFont(_d_i_s_p_l_a_y, _f_o_n_t)
- Display *_d_i_s_p_l_a_y;
- Font _f_o_n_t;
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- _a_t_o_m Specifies the atom for the property name you want
- returned.
-
- _d_i_s_p_l_a_y Specifies the connection to the X server.
-
- _f_o_n_t Specifies the font.
-
- _f_o_n_t__I_D Specifies the font ID or the _G_C_o_n_t_e_x_t ID.
-
- _f_o_n_t__s_t_r_u_c_t
- Specifies the storage associated with the font.
-
- _g_c Specifies the GC.
-
- _n_a_m_e Specifies the name of the font, which is a null-
- terminated string.
-
- _v_a_l_u_e__r_e_t_u_r_n
- Returns the value of the font property.
-
-
-
- Page 1 (printed 10/3/02)
-
-
-
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The _X_L_o_a_d_F_o_n_t function loads the specified font and returns
- its associated font ID. If the font name is not in the Host
- Portable Character Encoding, the result is implementation-
- dependent. Use of uppercase or lowercase does not matter.
- When the characters ``?'' and ``*'' are used in a font name,
- a pattern match is performed and any matching font is used.
- In the pattern, the ``?'' character will match any single
- character, and the ``*'' character will match any number of
- characters. A structured format for font names is specified
- in the X Consortium standard _X _L_o_g_i_c_a_l _F_o_n_t _D_e_s_c_r_i_p_t_i_o_n
- _C_o_n_v_e_n_t_i_o_n_s. If _X_L_o_a_d_F_o_n_t was unsuccessful at loading the
- specified font, a _B_a_d_N_a_m_e error results. Fonts are not
- associated with a particular screen and can be stored as a
- component of any GC. When the font is no longer needed,
- call _X_U_n_l_o_a_d_F_o_n_t.
-
- _X_L_o_a_d_F_o_n_t can generate _B_a_d_A_l_l_o_c and _B_a_d_N_a_m_e errors.
-
- The _X_Q_u_e_r_y_F_o_n_t function returns a pointer to the _X_F_o_n_t_S_t_r_u_c_t
- structure, which contains information associated with the
- font. You can query a font or the font stored in a GC. The
- font ID stored in the _X_F_o_n_t_S_t_r_u_c_t structure will be the
- _G_C_o_n_t_e_x_t ID, and you need to be careful when using this ID
- in other functions (see _X_G_C_o_n_t_e_x_t_F_r_o_m_G_C). If the font does
- not exist, _X_Q_u_e_r_y_F_o_n_t returns NULL. To free this data, use
- _X_F_r_e_e_F_o_n_t_I_n_f_o.
-
- _X_L_o_a_d_Q_u_e_r_y_F_o_n_t can generate a _B_a_d_A_l_l_o_c error.
-
- The _X_L_o_a_d_Q_u_e_r_y_F_o_n_t function provides the most common way for
- accessing a font. _X_L_o_a_d_Q_u_e_r_y_F_o_n_t both opens (loads) the
- specified font and returns a pointer to the appropriate
- _X_F_o_n_t_S_t_r_u_c_t structure. If the font name is not in the Host
- Portable Character Encoding, the result is implementation-
- dependent. If the font does not exist, _X_L_o_a_d_Q_u_e_r_y_F_o_n_t
- returns NULL.
-
- The _X_F_r_e_e_F_o_n_t function deletes the association between the
- font resource ID and the specified font and frees the
- _X_F_o_n_t_S_t_r_u_c_t structure. The font itself will be freed when
- no other resource references it. The data and the font
- should not be referenced again.
-
- _X_F_r_e_e_F_o_n_t can generate a _B_a_d_F_o_n_t error.
-
- Given the atom for that property, the _X_G_e_t_F_o_n_t_P_r_o_p_e_r_t_y
- function returns the value of the specified font property.
- _X_G_e_t_F_o_n_t_P_r_o_p_e_r_t_y also returns _F_a_l_s_e if the property was not
- defined or _T_r_u_e if it was defined. A set of predefined
- atoms exists for font properties, which can be found in
- <_X_1_1/_X_a_t_o_m._h>. This set contains the standard properties
-
-
-
- Page 2 (printed 10/3/02)
-
-
-
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- associated with a font. Although it is not guaranteed, it
- is likely that the predefined font properties will be
- present.
-
- The _X_U_n_l_o_a_d_F_o_n_t function deletes the association between the
- font resource ID and the specified font. The font itself
- will be freed when no other resource references it. The
- font should not be referenced again.
-
- _X_U_n_l_o_a_d_F_o_n_t can generate a _B_a_d_F_o_n_t error.
-
- SSSSTTTTRRRRUUUUCCCCTTTTUUUURRRREEEESSSS
- The _X_F_o_n_t_S_t_r_u_c_t structure contains all of the information
- for the font and consists of the font-specific information
- as well as a pointer to an array of _X_C_h_a_r_S_t_r_u_c_t structures
- for the characters contained in the font. The _X_F_o_n_t_S_t_r_u_c_t,
- _X_F_o_n_t_P_r_o_p, and _X_C_h_a_r_S_t_r_u_c_t structures contain:
-
- typedef struct {
- short lbearing; /* origin to left edge of raster */
- short rbearing; /* origin to right edge of raster */
- short width; /* advance to next char's origin */
- short ascent; /* baseline to top edge of raster */
- short descent; /* baseline to bottom edge of raster */
- unsigned short attributes;/* per char flags (not predefined) */
- } XCharStruct;
-
- typedef struct {
- Atom name;
- unsigned long card32;
- } XFontProp;
-
- typedef struct { /* normal 16 bit characters are two bytes */
- unsigned char byte1;
- unsigned char byte2;
- } XChar2b;
-
- typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- Font fid; /* Font id for this font */
- unsigned direction; /* hint about the direction font is painted */
- unsigned min_char_or_byte2;/* first character */
- unsigned max_char_or_byte2;/* last character */
- unsigned min_byte1; /* first row that exists */
- unsigned max_byte1; /* last row that exists */
- Bool all_chars_exist; /* flag if all characters have nonzero size */
- unsigned default_char; /* char to print for undefined character */
- int n_properties; /* how many properties there are */
- XFontProp *properties; /* pointer to array of additional properties */
- XCharStruct min_bounds; /* minimum bounds over all existing char */
- XCharStruct max_bounds; /* maximum bounds over all existing char */
- XCharStruct *per_char; /* first_char to last_char information */
-
-
-
- Page 3 (printed 10/3/02)
-
-
-
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- int ascent; /* logical extent above baseline for spacing */
- int descent; /* logical decent below baseline for spacing */
- } XFontStruct;
-
- X supports single byte/character, two bytes/character
- matrix, and 16-bit character text operations. Note that any
- of these forms can be used with a font, but a single
- byte/character text request can only specify a single byte
- (that is, the first row of a 2-byte font). You should view
- 2-byte fonts as a two-dimensional matrix of defined
- characters: byte1 specifies the range of defined rows and
- byte2 defines the range of defined columns of the font.
- Single byte/character fonts have one row defined, and the
- byte2 range specified in the structure defines a range of
- characters.
-
- The bounding box of a character is defined by the
- _X_C_h_a_r_S_t_r_u_c_t of that character. When characters are absent
- from a font, the default_char is used. When fonts have all
- characters of the same size, only the information in the
- _X_F_o_n_t_S_t_r_u_c_t min and max bounds are used.
-
- The members of the _X_F_o_n_t_S_t_r_u_c_t have the following semantics:
-
- +o The direction member can be either _F_o_n_t_L_e_f_t_T_o_R_i_g_h_t or
- _F_o_n_t_R_i_g_h_t_T_o_L_e_f_t. It is just a hint as to whether most
- _X_C_h_a_r_S_t_r_u_c_t elements have a positive (_F_o_n_t_L_e_f_t_T_o_R_i_g_h_t)
- or a negative (_F_o_n_t_R_i_g_h_t_T_o_L_e_f_t) character width metric.
- The core protocol defines no support for vertical text.
-
- +o If the min_byte1 and max_byte1 members are both zero,
- min_char_or_byte2 specifies the linear character index
- corresponding to the first element of the per_char
- array, and max_char_or_byte2 specifies the linear
- character index of the last element.
-
- If either min_byte1 or max_byte1 are nonzero, both
- min_char_or_byte2 and max_char_or_byte2 are less than
- 256, and the 2-byte character index values
- corresponding to the per_char array element N (counting
- from 0) are:
-
-
- byte1 = N/D + min_byte1
- byte2 = N\D + min_char_or_byte2
-
-
- where:
-
-
- D = max_char_or_byte2 - min_char_or_byte2 + 1
- / = integer division
-
-
-
- Page 4 (printed 10/3/02)
-
-
-
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- \ = integer modulus
-
- +o If the per_char pointer is NULL, all glyphs between the
- first and last character indexes inclusive have the
- same information, as given by both min_bounds and
- max_bounds.
-
- +o If all_chars_exist is _T_r_u_e, all characters in the
- per_char array have nonzero bounding boxes.
-
- +o The default_char member specifies the character that
- will be used when an undefined or nonexistent character
- is printed. The default_char is a 16-bit character (not
- a 2-byte character). For a font using 2-byte matrix
- format, the default_char has byte1 in the most-
- significant byte and byte2 in the least significant
- byte. If the default_char itself specifies an
- undefined or nonexistent character, no printing is
- performed for an undefined or nonexistent character.
-
- +o The min_bounds and max_bounds members contain the most
- extreme values of each individual _X_C_h_a_r_S_t_r_u_c_t component
- over all elements of this array (and ignore nonexistent
- characters). The bounding box of the font (the
- smallest rectangle enclosing the shape obtained by
- superimposing all of the characters at the same origin
- [x,y]) has its upper-left coordinate at:
- [x + min_bounds.lbearing, y - max_bounds.ascent]
-
- Its width is:
- max_bounds.rbearing - min_bounds.lbearing
-
- Its height is:
- max_bounds.ascent + max_bounds.descent
-
- +o The ascent member is the logical extent of the font
- above the baseline that is used for determining line
- spacing. Specific characters may extend beyond this.
-
- +o The descent member is the logical extent of the font at
- or below the baseline that is used for determining line
- spacing. Specific characters may extend beyond this.
-
- +o If the baseline is at Y-coordinate y, the logical
- extent of the font is inclusive between the Y-
- coordinate values (y - font.ascent) and (y +
- font.descent - 1). Typically, the minimum interline
- spacing between rows of text is given by ascent +
- descent.
-
- For a character origin at [x,y], the bounding box of a
- character (that is, the smallest rectangle that encloses the
-
-
-
- Page 5 (printed 10/3/02)
-
-
-
-
-
-
- XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXLLLLooooaaaaddddFFFFoooonnnntttt((((3333XXXX11111111))))
-
-
-
- character's shape) described in terms of _X_C_h_a_r_S_t_r_u_c_t
- components is a rectangle with its upper-left corner at:
-
- [x + lbearing, y - ascent]
-
- Its width is:
-
- rbearing - lbearing
-
- Its height is:
-
- ascent + descent
-
- The origin for the next character is defined to be:
-
- [x + width, y]
-
- The lbearing member defines the extent of the left edge of
- the character ink from the origin. The rbearing member
- defines the extent of the right edge of the character ink
- from the origin. The ascent member defines the extent of
- the top edge of the character ink from the origin. The
- descent member defines the extent of the bottom edge of the
- character ink from the origin. The width member defines the
- logical width of the character.
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- _B_a_d_A_l_l_o_c The server failed to allocate the requested
- resource or server memory.
-
- _B_a_d_F_o_n_t A value for a Font or GContext argument does not
- name a defined Font.
-
- _B_a_d_N_a_m_e A font or color of the specified name does not
- exist.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- XCreateGC(3X11), XListFonts(3X11), XSetFontPath(3X11)
- _X_l_i_b - _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 6 (printed 10/3/02)
-
-
-
-